package pimcontr;

/**
 * Klasse um die Notizliste zu speichern bzw. zu laden
 * 
 *
 */

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import pimgui.PimGui;
import pimmodel.*;

public class NotizManager extends PimManager{
	
	private INotizList notizen;
	private Map<String, String> map;
	
	public NotizManager (){
		notizen=new NotizList();
		map = new HashMap<String, String>();
	}
	
	public void speichern() throws FileNotFoundException, IOException{
		notizen.speichern();
	}
	
	public void laden() throws ClassNotFoundException, IOException{
		notizen.laden();
	}
	
	@Override
	public void drucken() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void hinzufuegen(IPimDaten adddaten) {
		notizen.notizHinzufuegen((Notiz)adddaten);// TODO Auto-generated method stub
		
	}

	@Override
	public void loeschen(IPimDaten loeschdaten) {
		notizen.notizLoeschen((INotiz)loeschdaten);
		// TODO Auto-generated method stub
		
	}
	
	public void loeschen(int index){
		notizen.getNotizliste().remove(index);
		
	}

	@Override
	public void aendern(IPimDaten beardaten, IPimDaten orgdaten) {
		notizen.notizBear((Notiz)beardaten, (INotiz)orgdaten);
		// TODO Auto-generated method stub
		
	}
	
	public INotiz suchen(String suchname){
		INotiz gefunden=new Notiz();
		int index=notizen.suchen(suchname);
		gefunden=notizen.getNotiz(index);
		
		return gefunden;
	}
	
	public INotiz suchenNot(INotiz suchNotiz){
		INotiz gefunden=new Notiz();
		int index=notizen.suchenNotiz(suchNotiz);
		gefunden=notizen.getNotiz(index);
		return gefunden;
	}

	public INotizList getNotizen() {
		return notizen;
	}

	public void setNotizen(INotizList notizen) {
		this.notizen = notizen;
	}
	
	
	public NotizList getNotizenlist() {
		return (NotizList) notizen;
	}

	public void setNotiz(NotizList notiz) {
		this.notizen = notiz;
	}
	
	
	
	/**
	 * Methode die ein Stringarry erstellt mit den Namen der Termin fuer die ausgabe in der gui
	 * @return gibt ein Array mit den Notiznamen zurueck
	 */
	public String[] notizenausgabe() {
		
		Map<String, String> map = new HashMap<String, String>();
		
		String[]notizenname=new String[notizen.size()+1];
		notizenname[0]=PimGui.getResourceBundle().getString("pimgui25")/*"Alle Daten anzeigen"*/;
		int j=1;
		
		for (int i=0;i<notizen.size();i++){
			
				notizenname[j]=notizen.getNotizliste().get(i).getName();
				
				j++;
				
			
		}
		
		return notizenname;
		// TODO Auto-generated method stub
	}

	
	public Map<String, String> getMap() {
		return map;
	}

	public void setMap(Map<String, String> map) {
		this.map = map;
	}
	
	/**
	 * Methode die eine Map fuellt mit den Indexen der Notizen
	 * um das Suchen zu vereinfachen, dies geschieht mit der Kombination von Notiznamen und Notizinhalt
	 */	
	public void maperzeugen() {		
		for (int i=0;i<notizen.size();i++){
			
			map.put(notizen.getNotizliste().get(i).getName().toString()+""+notizen.getNotizliste().get(i).getInhalt().toString(), i+"");
			
		}
	}
	



	

}
